An application developer designs programming systems and other applications for a user's work, such as software that does inventory control or payroll. One aspect of the application developer's design task is to create a user interface. The user interface may be hardware, software, or both that allows a user to interact with and perform operations on a system, program or device. The user interface comprises a series of pages displayed on the user's display screen. The pages contain the instructions, fields, controls, labels and scripts so that the user can interact with the application to complete the task for which the application is designed. The pages may be graphical user interface windows, web pages, or other mechanisms to display information. The design of these pages and the design of the flow of the pages as they appear to the user goes beyond the programming skills of the application developer and into the area of human-machine interaction.
Human machine interaction directly influences usability. Usability is the quality of a system, program, or device that enables it to be easily understood and conveniently employed by a user. Unlike machines, humans cannot be predicted with mathematical precision. However, human testing, observation, best practice analysis, interviews, captured historical data, and other methods may be used to determine how users react to certain heuristic factors in a design and to determine average times associated with these reactions. The heuristic factors may be used to assess positive and negative user reactions. The average times can be summed over a series of tasks to predict the performance of the interaction of a human with a computer implemented process through a user interface.
When interacting with a computer, a user may do operations such as the following: react to the page displayed, read instructions, prepare to respond to the page, input data by using a mouse or keyboard, move the mouse to a target on the page, click the mouse, use the tab key, use the enter key, and wait for a system response. Each of these discrete operations can be measured in order to create a table of predictive times based on averages, assumptions or estimates. Many sources for predictive times can be found in publications in print or on the Internet, and modeling techniques using predictive times are well known. Goals, Operators, Methods and Selection rules (GOMS) is a family of modeling techniques used by developers to model a user's behavior while performing known tasks. One version of GOMS is the Keystroke-Level Model (KLM) that predicts the execution time of a task by adding up the individual times associated with keystroke level actions. Keystroke level means user actions such as pressing keys or moving the mouse as opposed to more complex actions. KLM was proposed by Card, Moran, & Newell in 1983. Predictive times for mental preparation may be found in Rubin's, The Human Interface, “GOMS Keystroke-Level Model.” Predictive times for movement from a keyboard to a mouse may be found in Preece et al., Human Computer Interaction, “Modelling: The Keystroke Level Model.” Predictive times for movement from a mouse to a keyboard may be found at: http://www.sju.edu/˜jhodgson/gui/goms_keys.html. Predictive times for movement from a mouse to a target may be found at: http://www.csl.mtu.edu/cs3611/www/GuiDesign/metricsspck.html. Articles may be found posted on the Internet such as “Using the Keystroke-Level Model to Estimate Execution Times,” by David Kieras, University of Michigan, 1993, and “GOMS,” by Lorin Hochstein, University of Maryland, Department of Computer Science, 2002. Therefore, discrete time values for predicting human interaction with an application user interface are known, and the modeling techniques for developing such predictive data are known.
In addition to determining predictive times, heuristic analysis may be employed to evaluate the usability of a user interface. In general, heuristics pertains to exploratory methods of problem solving in which solutions are discovered by evaluation of the progress made toward the final result. A heuristic method employs a sequence of trials yielding approximate results, with control of the progression toward an acceptable final result. Heuristic rules are written to capture the heuristics an expert uses to solve a problem. Heuristic rules can be made based upon human testing, observation, best practice analysis, interviews, captured historical data, and other methods in order to select rules of thumb or guidelines to minimize steps required to perform a task.
In particular, heuristic rules can also be applied to achieve a desired interface style, approach, or usability. For example, Jakob Nielsen has published papers at www.useit.com/papers/heurisitic such as “How to Conduct a Heuristic Evaluation” and Ten Usabililty Heuristics” directed toward “user interface design.” Nielsen's recommended evaluation uses three to five evaluators who separately and physically inspect the interface and then communicate to “aggregate” their findings. Nielsen's rules address such factors as visibility, consistency, recognition, and documentation. Thus, heuristic analysis of an interface using manual techniques is known.
While the manual use of predictive time values and the separate manual use of heuristics to improve the usability of an application interface are known, a need exists for a design process using predictive times and heuristics together to improve usability. Moreover, a need exists for such a design process that can be applied to different environments and interface styles.
An environment, in the context of application interface design, means the number of users, customers, machines and databases that singly or in combination may interact in order for the application to perform its purpose. Specific application environments may be defined. Each specific application environment has individualized needs for different users of the application. For example, in a customer service environment, a customer service representative who performs maintenance services for a company's products or services will have a need to quickly receive technically accurate information from the customer regarding problems that may arise with the product, and the quality of the information received may depend on the interface the customer will use to transmit data.
An interface style, in the context of application interface design, means the type of display, the computers, and the networks, singly or in combination, that are used to obtain information from the user and to present information to the user of an application. For example, one interface style is a graphical user interface (GUI), a second interface style is a Wizard, a third interface style is a personal digital assistant (PDA), and a fourth interface style is a web page.
In addition, neither automated estimation nor heuristic improvement of a user interface have been addressed in commercial products. Therefore, there are no known automated solutions to the problem of integrating task performance estimation and heuristic analysis of usability for application interface pages. The manual and separate analytical techniques that are used consume time and resources. When employed in a high-speed project environment, these manual and separate techniques are error prone.
What is needed in the art is an automated tool for modeling and analyzing tasks in user interface designs that can be used early in a product development cycle, and that can continue to be used through deployment. Tools such as Rational, Bobby, or other development tools do not support the analysis needed for optimization of an interface relative to tasks supported by the application.
Prior art interaction with a user interface involves automatically updating user interfaces to reflect changes in a database. For example, U.S. Pat. No. 5,550,971 discloses a method for generating a user interface adaptable to changes occurring in a remote database by using model layers with the same semantic construction. Because the same semantic construction is used for each layer, software generating the user interface automatically reflects changes in a remote database without a need to recode the program generating the user interface. However, the prior art does not address the need for an automated process to use both predictive time values and the heuristic method together in interface design.
What is needed beyond the prior art is a software program for application developers that automatically models, analyzes, and modifies a task-based user interface design for an application so that the design meets acceptable development criteria.